package pl.edu.agh.neuraleconomy.core.ta.indicator;

import java.util.Date;
import java.util.List;
import java.util.Map;

import pl.edu.agh.neuraleconomy.model.exchange.Exchange;

public interface ICalculator {
	/**
	 * Zalozenie - kursy posortowane po dacie
	 * 
	 * @param exchanges
	 * @return
	 */
	public Map<Date, Double> calculate(List<Exchange> exchanges);

	public double[] calculate(double[] data);

	/**
	 * Metoda zwraca dlugosc jaka powinna miec tablica bedaca argumentem metody
	 * calculate, aby metoda calculate zwrocila tablice o dlugosci outputLen.
	 * Przewaznie jest to uzaleznione od wyboru okna czasowego dla konkretnego
	 * wskaznika
	 * 
	 * @param outputLen
	 * @return
	 */
	public int getInputLenForOutputLen(int outputLen);
}
